package com.chixing.fourteen.repository;

import com.chixing.fourteen.pojo.Customer;
import com.chixing.fourteen.pojo.CustomerOrder;
import com.chixing.fourteen.pojo.Message;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author Y2014188432
 * 订单类
 */
@Repository
public interface CustomerOrderRepository {

    /**
     * 创建新的订单
     * @param customerOrder 新订单
     * @return 受影响行数
     */
    public int insert(CustomerOrder customerOrder);

    /**
     * 根据用户id查找订单
     * @param id 用户id
     * @param page 起始页
     * @param temp 单页页数
     * @return 订单信息
     */
    public List<CustomerOrder> select (@Param("id") int id,@Param("page") int page,@Param("temp") int temp);

    /**
     * 根据 用户id 和 状态查找订单
     * @param id 用户 id
     * @param status 状态
     * @return 订单集合
     */
    public List<CustomerOrder> selectByStatus(@Param("id") int id,@Param("status") int status);

    /**
     * 通过订单 id 改变订单状态
     * @param customerOrderId 订单 id
     * @param customerOrderStatus 订单状态
     * @return 受影响行数
     */
    public int update(@Param("customerOrderId") int customerOrderId,@Param("customerOrderStatus") int customerOrderStatus);

    /**
     * 根据用户 id 返回订单总数
     * @param customerId 用户 id
     * @return 订单总数
     */
    public int countByCustomerId(@Param("customerId") int customerId);

    /**
     * 查询已支付的订单详细信息
     * @param customerOrderId 订单
     * @return Message
     */
    public Message getMessage(@Param("customerOrderId") int customerOrderId);
}
